<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="NoName" source-language="en" datatype="plaintext" target-language="zh_Hans">
    <body>
      <trans-unit xml:space="preserve" approved="no" id="a3ef4e1045cbe0f9" weblate-flags="safe-html, strict-same">
        <source>= Numbers JSON numbers are represented using `std::int64_t`, `std::uint64_t`, and `double`. When a &lt;&lt;ref_value&gt;&gt; is constructed from an unsigned integer, its &lt;&lt;ref_kind&gt;&gt; will be `kind::uint64`. Likewise, a &lt;&lt;ref_value&gt;&gt; constructed from a signed integer will have `kind::int64`, or `kind::double_` if constructed from a floating-point type:</source>
        <target state="translated">= 数字 JSON数字使用`std::int64_t`、`std::uint64_t`和`double`表示。当 &amp;lt;&lt;ref_value&gt;&amp;gt; 从无符号整数构造时，其&amp;lt;&lt;ref_kind&gt;&amp;gt;将为`kind::uint64`。同样，从有符号整数构造的&amp;lt;&lt;ref_value&gt;&amp;gt; 将具有`kind::int64`，若从浮点类型构造则为`kind::double_`：&lt;/ref_value&gt;&lt;/ref_kind&gt;&lt;/ref_value&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">12</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="230e1231a35545da" weblate-flags="safe-html, strict-same">
        <source>When accessing a number contained within a &lt;&lt;ref_value&gt;&gt;, the function used must match the value's &lt;&lt;ref_kind&gt;&gt; exactly; no conversions will be performed. For example if `as_double` is called on a &lt;&lt;ref_value&gt;&gt; that contains a `std::uint64_t`, an exception is thrown. Similarly, the function `if_double` will return `nullptr` and calling `get_double` will result in undefined behavior:</source>
        <target state="translated">访问&amp;lt;&lt;ref_value&gt;&amp;gt;内包含的数字时，所使用的函数必须与该值的&amp;lt;&lt;ref_kind&gt;&amp;gt;完全匹配；不会执行任何转换。例如，如果在一个包含`std::uint64_t` 的 &amp;lt;&lt;ref_value&gt;&amp;gt; 上调用 `as_double`，将抛出异常。类似地，函数 `if_double` 将返回`nullptr`，而调用 `get_double` 将导致未定义行为：&lt;/ref_value&gt;&lt;/ref_kind&gt;&lt;/ref_value&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">24</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="aaf24e0edc434cf6" weblate-flags="safe-html, strict-same">
        <source>In cases where you know that a &lt;&lt;ref_value&gt;&gt; contains a number but don't know its &lt;&lt;ref_kind&gt;&gt;, `value::to_number` can be used to convert the &lt;&lt;ref_value&gt;&gt; to an arithmetic type:</source>
        <target state="translated">若已知 &amp;lt;&lt;ref_value&gt;&amp;gt; 包含数字，但不确定其 &amp;lt;&lt;ref_kind&gt;&amp;gt;，可使用 `value::to_number` 将该&amp;lt;&lt;ref_value&gt;&amp;gt; 转换为算术类型：&lt;/ref_value&gt;&lt;/ref_kind&gt;&lt;/ref_value&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">36</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="11f94f926006c5b1" weblate-flags="safe-html, strict-same">
        <source>If the &lt;&lt;ref_value&gt;&gt; does not contain a number, or if the conversion is to an integer type `T` and the number cannot be represented exactly by `T`, the conversion will fail. Otherwise, the result is the number converted to `T` as-if by `static_cast`:</source>
        <target state="translated">若&amp;lt;&lt;ref_value&gt;&amp;gt;不包含数字，或当转换目标为整数类型`T`且数字无法被`T`精确表示时，将导致转换失败。否则，结果是通过`static_cast`将数字转换为`T`所得的值：&lt;/ref_value&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">45</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="df7b95b00a2e5a93" weblate-flags="safe-html, strict-same">
        <source>In settings where exceptions cannot be used, an overload of `value::to_number` accepting {ref_error_code} can be used instead with identical semantics to its throwing counterpart:</source>
        <target state="translated">在无法使用异常的场合，可改用接受{ref_error_code}的`value::to_number`重载，其语义与抛出异常版本完全相同：</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">55</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="d7f2ef5a043e9fa7" weblate-flags="safe-html, strict-same">
        <source>When parsing a JSON document, the type used to represent a number is not explicitly specified and must be determined from its value. In general, the parser will choose the best type which can accurately store the number as it appears in the document. Integers (i.e. numbers without decimals or exponents) that cannot be represented by `std::uint64_t` and `std::int64_t` will be represented as `double` to preserve their magnitude:</source>
        <target state="translated">在解析 JSON 文档时，数字的表示类型并未显式指定，而必须根据其值来确定。通常，解析器会选择能够精确存储文档中所出现数字的最佳类型。对于整数（即不带小数部分或指数的数字），若其值无法用 `std::uint64_t` 或 `std::int64_t` 表示，则会以 `double` 类型存储，以保留其数量级。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">64</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="0c490b17341209d8" weblate-flags="safe-html, strict-same">
        <source>More formally, if the number:</source>
        <target state="translated">更正式地，如果该数字：</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">76</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="1d46d10efaedc962" weblate-flags="safe-html, strict-same">
        <source>contains a decimal point, or</source>
        <target state="translated">包含小数点，或</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">78</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e00ea15f87187ee0" weblate-flags="safe-html, strict-same">
        <source>contains an exponent, or</source>
        <target state="translated">包含指数，或</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">79</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a9dab5b15d5ae4cd" weblate-flags="safe-html, strict-same">
        <source>is negative and its value is less than `INT64_MIN`, or</source>
        <target state="translated">为负数且其值小于`INT64_MIN`，或</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">80</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="c9ceab88fa59d94e" weblate-flags="safe-html, strict-same">
        <source>is positive and its value is greater than `UINT64_MAX`,</source>
        <target state="translated">为正数且其值大于`UINT64_MAX`，</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">81</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="c010dddae24b27bb" weblate-flags="safe-html, strict-same">
        <source>then its type is `double`. Otherwise, if the number is positive and its value is greater than `INT64_MAX`, then its type is `std::uint64_t`. All other numbers are parsed as `std::int64_t`.</source>
        <target state="translated">则其类型为`double`。否则，若数字为正数且其值大于`INT64_MAX`，则其类型为`std::uint64_t`。其余所有数字均被解析为`std::int64_t`。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">83</context>
        </context-group>
      </trans-unit>
    </body>
  </file>
</xliff>
