gpt4 book ai didi

c# - C# 有无符号 double 吗?

转载 作者:IT王子 更新时间:2023-10-29 04:12:53 25 4
gpt4 key购买 nike

我需要使用 unsigned double 但事实证明 C# 不提供这种类型。

有人知道为什么吗?

最佳答案

正如 Anders Forsgren 所指出的,IEEE 规范中没有无符号 double (因此 C# 中也没有)。

调用Math.Abs()总是可以得到正值你可以将一个 double 包装在一个结构中并在那里强制执行约束:

public struct PositiveDouble 
{
private double _value;
public PositiveDouble() {}
public PositiveDouble(double val)
{
// or truncate/take Abs value automatically?
if (val < 0)
throw new ArgumentException("Value needs to be positive");
_value = val;
}

// This conversion is safe, we can make it implicit
public static implicit operator double(PositiveDouble d)
{
return d._value;
}
// This conversion is not always safe, so we make it explicit
public static explicit operator PositiveDouble(double d)
{
// or truncate/take Abs value automatically?
if (d < 0)
throw new ArgumentOutOfRangeException("Only positive values allowed");
return new PositiveDouble(d);
}
// add more cast operators if needed
}

关于c# - C# 有无符号 double 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7305785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com