2014-10-17 140 views
0

我想在“。”之后将浮点型精度从7位减少到6。我试着将数字乘以10,但这不起作用。有任何想法吗?更改浮点型精度

+3

你可以请你出示你的代码吗?感觉就像你只需要格式化,但不知道没有看到你的工作。 – 2014-10-17 14:41:31

+0

可能的重复:http://stackoverflow.com/questions/6356351/formatting-a-float-to-2-decimal-places – 2014-10-17 14:43:44

+4

你真的想要做什么?向左和向右移动小数点(这是乘以10的任何幂到十进制数,或乘以2的幂到二进制数)不会影响精度。这让我怀疑你没有精确地使用术语。你想做什么 ? – 2014-10-17 14:44:37

回答

2

如果你只是想格式化输出的数量(即转换为字符串),你只需要使用正确的格式字符串:如果你需要做的,对于

13.651234f.ToString("f6"); // Always six decimal places 

您的应用程序逻辑,您可能要使用decimal而不是float - float是一个二进制数,所以“十进制”小数位的概念有点偏离。

+0

只是说这不是关于格式化,我正在做一个挑战,精度应该在点后6位数。 – user3868594 2014-10-17 15:36:45

+0

@ user3868594那么,浮点数只有二进制精度。小数精度总是会很痛苦。例如,'0.9f'不能用有限的二进制浮点表示。所以,如果你关心小数精度,可以用'decimal'代替。 – Luaan 2014-10-20 08:13:35