none
powershell и числа RRS feed

  • Вопрос

  • $c="0.00000004"

    $c | out-file d:\1.txt

    $a=get-content d:\1.txt

    $c

    4E-08

    $a

    4E-08

    как сделать так, чтобы число не возводилось  в степень, а всегда было вида "0.00000004"?

    количество знаков после запятой,определяет переменная,например $b






    • Изменено last_kpojl 10 февраля 2018 г. 19:06
    10 февраля 2018 г. 14:12

Ответы

  • Числа всегда представлены в двоичном виде, а те или иные форматы возникают только при выводе чисел в виде строк, как на экран так и в файл. Одно и то же число можно вывести в разных форматах.

    В данном случае из файла всегда считывается строка вне зависимости от формата. Если после считывания требуется число, то надо выполнять преобразование типа:

    $c=0.00000004
    $c | out-file d:\1.txt

    $s = get-content d:\1.txt
    $a = [double]::Parse($s)
    $a
    4E-08
    $a.GetType()

    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Double                                   System.ValueType

    $a.ToString("F8")
    0.00000004
    $a.ToString("G")
    4E-08


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа last_kpojl 10 февраля 2018 г. 21:43
    10 февраля 2018 г. 19:06
    Модератор

Все ответы

  • $c = "0.00000004"

    10 февраля 2018 г. 17:36
  • $c.ToString("F8") | out-file d:\1.txt



    This posting is provided "AS IS" with no warranties, and confers no rights.

    10 февраля 2018 г. 17:37
    Модератор
  • $c.ToString("F8") | out-file d:\1.txt



    This posting is provided "AS IS" with no warranties, and confers no rights.

    вопрос все тот же,ключевое слово число, а не строка.с переменными $c $a  нужно будет проводить  в  дальнейшем другие операции.в вашем варианте 
    $a.gettype() это String 

    • Изменено last_kpojl 10 февраля 2018 г. 18:31
    10 февраля 2018 г. 18:23
  • Числа всегда представлены в двоичном виде, а те или иные форматы возникают только при выводе чисел в виде строк, как на экран так и в файл. Одно и то же число можно вывести в разных форматах.

    В данном случае из файла всегда считывается строка вне зависимости от формата. Если после считывания требуется число, то надо выполнять преобразование типа:

    $c=0.00000004
    $c | out-file d:\1.txt

    $s = get-content d:\1.txt
    $a = [double]::Parse($s)
    $a
    4E-08
    $a.GetType()

    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Double                                   System.ValueType

    $a.ToString("F8")
    0.00000004
    $a.ToString("G")
    4E-08


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа last_kpojl 10 февраля 2018 г. 21:43
    10 февраля 2018 г. 19:06
    Модератор