- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我从 OdcDataReader 获取一个值,该值显示为 Single 类型。我不想在代码中使用单个,所以我想将它转换成小数。但是,似乎每当我尝试将其转换为小数(或任何与此相关的东西)时,它都会丢失几个小数位。我需要尽可能保持计算的准确性。我能找到的唯一方法是将单个字符串转换为带有“R”参数(往返)的字符串,然后将字符串解析为小数。我创建了一些扩展方法来转换它们,但我希望有一种方法可以在不进行字符串转换和解析的情况下转换它们。请记住,我需要保持精度。
Single sng = 1.32397970f; // 1.32397974
decimal d = (decimal)sng; // 1.32398M
d = Convert.ToDecimal(sng); // 1.32398M
string xxx = sng.ToString("G"); // "1.32398"
xxx = sng.ToString("C"); // "$1.32"
xxx = sng.ToString("E"); // "1.323980E+000"
xxx = sng.ToString("e"); // "1.323980e+000"
xxx = sng.ToString("F"); // "1.32"
xxx = sng.ToString("G"); // "1.32398"
xxx = sng.ToString("N"); // "1.32"
xxx = sng.ToString("P"); // "132.40 %"
xxx = sng.ToString("R"); // "1.32397974" - Bingo!
// My extension methods
static class ExtensionMethods
{
public static decimal ToDecimal(this Single value)
{
decimal d = decimal.Parse(value.ToString("R"));
return d;
}
public static decimal ToDecimal(this Single? value, decimal dflt)
{
if (!value.HasValue)
return dflt;
decimal d = decimal.Parse(value.Value.ToString("R"));
return d;
}
public static decimal? ToDecimal(this Single? value)
{
if (!value.HasValue)
return null;
decimal d = decimal.Parse(value.Value.ToString("R"));
return d;
}
}
最佳答案
首先将其转换为 double ,然后转换为小数,您将获得更高的“精度”。
decimal d = (decimal)Convert.ToDouble(sng);
不过,您将获得比以单个值开始的实际精度更高的精度。
关于c# - Csharp - 将单数转换为十进制而不转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42589356/
我一直在开发一个 .NET 字符串格式化库来协助应用程序的本地化。它称为 SmartFormat 并在 GitHub 上开源. 它试图解决的问题之一是 Grammatical Numbers .这也称
leetcode关于单数II的题目是: 给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗? 其实我已经从网站上
我想知道创建/命名模型的首选方法是什么? 我的应用程序有一个“用户”模型,其中包含用于创建、获取、更新(等)用户记录的所有相关业务逻辑。 在我的一些 Controller 中,我可能想要获取多个“用户
在我的 Mysql 数据库中,我有一个术语列表,例如(首字母大写,大多数时候是复数) Hairdressers Restaurants Beauty Salons Fournitures For Re
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一个东西存在,您是否将其保持为单数(更直观)或尊重使用复数的决定并保持这种方式? 我们正在用 PHP 为我们的客户门户网站设计一个新的 API
我可能在做一些愚蠢的事情,但是...... 应用/模型/user.rb: class User 然后,当我导航到 /users/123/totem/new 时,出现错误: ActionView::
您能否澄清一些 Matplotlib 术语: “subplots”(或“subplot”?)这个词是“axes”的同义词吗? “轴”和“轴”的单数/复数是什么? 最佳答案 这确实是一个令人困惑的问题。
我有一个 profile我的应用程序中的模型。我想允许用户通过 /profile 查看他们自己的个人资料,所以我创建了这条路线: resource :profile, :only => :show 我
我是一名优秀的程序员,十分优秀!