【发布时间】:2012-09-29 20:17:04
【问题描述】:
我需要将数字的小数部分转换为不带逗号的整数, 例如我有 3.35 我只想得到 35 部分没有零或逗号,
因为我使用了 modf() 函数来提取小数部分,但它给了我 0.35 如果有任何方法可以做到这一点或过滤“0”。如果您向我展示如何使用更小的代码,我将非常感激,
【问题讨论】:
-
总是只有两位小数吗?乘以 100 并转换为整数怎么样?
-
将其格式化为字符串,然后复制小数点后的所有内容,或删除第一个数字字符之前的所有内容。 (然后您可以将其转换回 int,如果这是您需要的)
-
3.35的二进制表示很可能是
3.349999986f左右。 3.350 的二进制表示是相同的。给定两个输入 3.35 和 3.350 ,您期望输出的具体内容是什么? -
请注意,
double或float类型不能精确表示 3.35,因为这是二进制的无限周期分数。您需要使用类似于建议的decimal64甚至int之类的类型,如果您想要准确的话,乘以 100 -
@MSalters 3.350000000000000088817841970012523233890533447265625 准确地说