Tag: 小数

Excel计算与python和十进制的使用

对不起,这个问题的几个部分。 我需要以非常准确的精度运行计算。 我正在玩Python的十进制,并试图validation计算。 我相信使用实际的数字,你需要有一个string的数字吧? 我正在运行下面的代码。 1)AI把它当作一个浮点,而BI把它当成一个string。 当我排列他们时,我得到不同的数字,是由于浮点算术? B ** 2更正确吗? 2)在最后一个print语句中,我试图获取平方根,但最终得到一个TypeError: unsupported operand type(s) for ** or pow(): 'Decimal' and 'float' 。 这是为什么? 3)最后当我试图validationexcel中的100.0897463平方时,我得到了10017.95731439840000000000的答案。 只是由于四舍五入造成的差异? 如果不是通过类似excel的方法validation浮点数与小数点计算的有效方法是什么? A = decimal.Decimal(100.0897463) B = decimal.Decimal('100.0897463') print A ** 2 print B ** 2 print B ** .5 给我这些数字, 10017.95731439836401246854725 10017.95731439836369 有趣的是,当我运行这样的代码时,我得到了两个完全相同的数字,而且它们不是没有小数精度的打印结果。 为什么会这样? print "%.20f" % A ** 2 […]

如何将数字凑到最接近的.5?

如何在excel中将数字凑到最接近的.5 ? 例如, 77.2到77.5 。

比较十进制值Excel VBA

我想在Excel VBA中比较十进制值,并删除符合条件的行。 这是我的原始代码,它跳过了许多行。 For Each i In WSData.Range("A7", WSData.Range("A7").End(xlDown)).Cells If i.Offset(0, 3).Value >= 98 Then i.EntireRow.Delete End If Next 而电子表格中的值只是带有%符号的十进制值。 我尝试“> 97.99”,因为Excel有浮点比较的一些问题,但它仍然不准确地比较。 以下是使用Selection.Value后显示的内容。

Python函数用于删除小数点右边的零,包括小数点吗?

我正在使用xlrd从Excel电子表格中的单元格读取值。 每当我检测到一个单元格types= 2,那么我知道这是一个数字。 3个单元中的数字将被返回为3.0而3.14的数目将被返回为3.14 我会将数字转换为文本。 我应该使用什么函数来除去小数点和小数点右边的零点? 以上2个数字应该是3和3.14

为什么Excelparsing数字有两位数以上的整数?

Excel使用Windows区域设置获取csv文件的列表分隔符和小数点分隔符。 我试图在我们的法语和德语用户的应用程序中本地化一些csv报告。 我使用分号作为csv分隔符和逗号作为每个csv的法语和德语版本的小数点分隔符。 我已经设置我的本地Windows区域设置使用分号和逗号作为小数点分隔符。 当我在Excel中打开以下testing文件时,Excel将正确地parsing具有2个或更less小数字符的数字…基于我的区域设置。 但是,具有3个或更多小数位数的数字将被parsing为整数。 所以,12,3000string将被parsing为12.3万(十二万三千)。 test.csv: "Decimal Separator";"In Quotes";"Number" "Period";"false";4.283333 "Period";"true";"4.283333" "Period";"false";0.283333 "Period";"true";"0.283333" "Comma";"false";4,283333 "Comma";"true";"4,283333" "Comma";"false";0,283333 "Comma";"true";"0,283333" "Period";"false";4.333 "Period";"true";"4.333" "Period";"false";0.333 "Period";"true";"0.333" "Comma";"false";4,333 "Comma";"true";"4,333" "Comma";"false";0,333 "Comma";"true";"0,333" "Period";"false";4.28 "Period";"true";"4.28" "Period";"false";0.28 "Period";"true";"0.28" "Comma";"false";4,28 "Comma";"true";"4,28" "Comma";"false";0,28 "Comma";"true";"0,28" "Period";"false";4.4 "Period";"true";"4.4" "Period";"false";0.4 "Period";"true";"0.4" "Comma";"false";4,4 "Comma";"true";"4,4" "Comma";"false";0,4 "Comma";"true";"0,4" "Period";"false";4 "Period";"true";"4" "Period";"false";0 "Period";"true";"0" "Comma";"false";4 "Comma";"true";"4" "Comma";"false";0 "Comma";"true";"0" "Period";"false";45623455454.283333 "Period";"true";"45623455454.283333" "Period";"false";45623455450.283333 "Period";"true";"45623455450.283333" […]

为什么Excel(xlsx)使用附加值在xml中保存一些值?

可能重复: 浮点不准确的例子 我正在parsingxlsx文件,并遇到此行为。 我不知道如何解释它,而没有描述重现问题的步骤。 1. Create new blank Excel file (xlsx) 2. Type '8.8' into cell A1 3. Save file 4. Close Excel, rename file with .zip extension and open 5. Find sheet1.xml and open 6. Value for 8.8 in A1 will be saved as '8.8000000000000007' 这对我来说是一个问题,因为当我parsingExcel文件时,我想要input的值是'8.8'而不是'8.8000000000000007'。 有谁知道为什么Excel这样做? 编辑:而Excel如何知道当我打开该文件只显示“8.8”而不是“8.8000000000000007”? Excel是否在一个特定的小数点位置?

Excel十进制舍入?

我怎样才能在Excel中四舍五入一个数字,如格式化,以便实际的数字改变,而不只是它的单元格中的外观。 例如,如果我有一个单元格中的229.729599999998,并将单元格格式化为只显示4个小数位,则它现在将在单元格中显示229.7296,但单元格的值仍然是229.729599999998,所以如果我要进行任何计算,Excel将使用与十进制数4相反的较长的十进制数。 是否有办法我可以这样做,不仅在单元格中的数字的外观显示4个小数位,但单元格的实际值将反映4个十进制数,以便该单元格和公式栏中的值将显示229.7296而不是229.729599999998。 我知道我可以在相邻的单元格中使用函数或公式来圈选数字,但是我只是放在一个大的电子表格中,如果我必须对我的传播中的所有单元格做同样的事情,则需要很长时间片。 有任何想法吗?

大量使用DEC2BIN()

我试图在Excel 4503599627370495转换为二进制。 DEC2BIN()返回#NUM! 错误,因为DEC2BIN不能处理这么大的数字。 任何想法,我怎么能够使其工作?