【问题标题】:How can i convert double to another double C#?如何将 double 转换为另一个 double C#?
【发布时间】:2013-03-07 05:42:04
【问题描述】:

如何在 C# 中将 30.55273 转换为 30.055273 我正在使用 xbee 无线模块,它不发送分数,所以我必须将任何双精度值分成两部分 EX:30.055273 -> 30 和 055273 所以当我发送它们时我收到它们 30 和 55273 所以零左边的将被取消我该如何解决这个问题

【问题讨论】:

  • @Ab...你要把它们分成两个字符串吗?

标签: c# xbee


【解决方案1】:

基于 Block Frog 的想法。在c#中构造一个字符串然后将其转换为double,如下所示:


String result = leftToDecimal.ToString() 
+ "." + zeroString(numberOfZeros) + fraction.ToString();
 double MyOriginalNumber = Convert.ToDouble(result);

Public string zeroString(int zeroCount)
{
   String result= "";
   for(int i=0; i< zeroCount; i++)
   result+="0";
}

【讨论】:

  • 我无法将它们作为字符串发送 :)
  • 我已经解决了这个问题,但我真的很感谢你的帮助:D
  • :) 我只是想告诉你,你可以使用分隔符 w kda bs 似乎你已经找到了你的方式。谢谢
【解决方案2】:

只需选择一个乘数,例如 100000,取小数部分并乘以该数字,然后再除以该数字。

此外,您可以通过 XBee 发送您喜欢的任何数据。您可能只想将数据转换为字节数组。请参阅How do I convert an array of floats to a byte[] and back? 了解如何执行此操作。

【讨论】:

  • 我认为这并不能解决左侧问题的零问题
  • 而xbee可以逐字节发送,所以只能发送字符
  • 是的,修复它,它只是以字节形式发送数据......字节与字符不太一样。字符只是表示某些符号的一种特定字节编码。 XBee 可以发送字节,就像您计算机中的 ram 将所有内容都存储为字节一样。浮点数只是编码 4 个字节来表示浮点数的一种方式,如果你发送这 4 个字节,你将在另一端得到一个浮点数。我使用 XBee 并发送浮点数据以及其他数据(在此之上还压缩和加密!)
  • @Keith Nicholas:你似乎是 xbee 的专业人士,所以你能在压缩和加密部分帮助我吗?可能有一些有用的链接或教程,在此先感谢
【解决方案3】:

您可以将它们作为字符串发送吗?然后这样做。

如果只能发送整数值,则发送 3 个值。

例如:30.055273

  • 第一个数字在小数点后(整数)
  • 第二个数字在小数点右边(小数)
  • 第三个数字是零的个数(占位符)

【讨论】:

  • 所以当我知道分数部分中有多少零时,我如何在 C# 中将它们构造回来
  • 字符串是字符。那时不需要数零。
【解决方案4】:

听起来您正在接收两个整数,您希望将它们粘在一起 - 其中一个按一百万倍缩放。对吗?

double ConvertToDouble(int wholePart, int fractionalPart)
{
    return wholePart + fractionalPart / 1000000d;
}

请注意,“d”部分非常重要 - 确保您使用 double 算术(而不是整数算术)执行除法。

如果确切的数字对您很重要,那么您可能实际上应该使用decimal

decimal ConvertToDouble(int wholePart, int fractionalPart)
{
    return wholePart + fractionalPart / 1000000m;
}

【讨论】:

  • 是的,我想把它们粘在一起,小数部分总是 6 位数
  • @Jon....如果 fractionalPart 有超过 5 个 diigts,这种方法会起作用吗?我只是想弄清楚分母如何适用于 0552734、05527346 等值。
  • @Jon....忽略我的评论,我刚刚看到 Abdelrahman 关于 6 位数字的评论 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 2023-04-01
  • 2016-10-10
  • 1970-01-01
相关资源
最近更新 更多