【问题标题】:How to add value to decimal places如何将值添加到小数位
【发布时间】:2019-11-06 11:40:46
【问题描述】:

我有一些 gps 纬度和经度坐标列表。如何在纬度浮点变量的末尾添加随机 int 值。这个我试过了……

float log = 77.567635f;
Random rand = new Random();
int r = rand.Next(1, 20);

假设 r 的值为 12,我想添加到日志 '77.567635' + r。

我的预期结果将是“77.567647”

【问题讨论】:

  • 这个问题真的与坐标有任何联系还是只是“如何在特定的后点添加值?”?
  • r除以1000000f,然后再添加到log
  • 您可以将浮点数解析为字符串,获取. 之后的整个值并将其解析为int,执行您想要的操作,然后执行相反的操作。
  • @HansPassant 将接受任何变量来完成此场景。有代码解决方案吗?

标签: c# decimal add


【解决方案1】:

我要做的是首先指定浮点数的精度。例如,如果精度为 0.000001(如您的示例中),您可以将随机生成的数字乘以该精度并将其添加到您的坐标中。

float log = 77.567635f;
Random rand = new Random();
float r = rand.Next(1, 20) * 0.000001f;
log = log+r;

【讨论】:

  • float 精度不够,需要推荐double
  • @wserr 感谢您的解决方案,我得到了预期的结果rand.Next(1, 20) * 0.000001 和@HansPassant,感谢您将变量更改为双倍的建议,它非常有效。
猜你喜欢
  • 1970-01-01
  • 2021-01-02
  • 1970-01-01
  • 2010-12-11
  • 2017-04-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
相关资源
最近更新 更多