Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Перевод чисел Добавлено: 14.05.04 09:30  

Автор вопроса:  a.mok

Как перевести любое десятичное число типа (любое число.любое число) в обычную дробь

например какая-то переменная number=0.9375 ,мне надо вывести её в textbox в виде 15/16

Как это реализовать ??????

а если десятичное число в периоде, например 0.6666666666666666666666666666666666666666666666666666666666666666666666666666 и так далее,что тогда делать?Помогите пожалуйста кто чем может

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 14.05.04 09:46
ИМХО, довольно сложно будет...

Вообще это можно так сделать (чисто математически):
Представить число в виде суммы бесконечной геометрической прогрессии
со знаменателем 0 < q < 1.
Например, 0.6666666 можно представить как
0.6 + 0.6*0.1 + 0.6*(0.1)^2 + 0.6*(0.1)^3 ...
Тогда сумму членов прогресси можно вычислить по формуле
b1/(1-q), где b1 - первый член, q - знаменатель.
Получим 0.6/0.9 или 2/3.

Ответить

Номер ответа: 2
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #2 Добавлено: 14.05.04 23:34

для перевода периодической десятичной дроби в обыкновенную дробь существует правило

 Правило: Чтобы представить периодическую десятиную дробь в виде обыкновенной дроби, нужно в числителе дроби записать разность всей дробной части ("сняв" скобки периода) и числа, образованного цифрами, стоящими перед периодом, а в знаменателе дроби написать столько девяток (для десятиричной с.с.; для с.с. с основанием р - цифр р-1), сколько цифр стоит в периоде дроби, а к ним дописать столько нулей, сколько цифр стоит до периода дроби.

в нашем случае

                                         66 - 6       60       2
0,666666666 = 0,6(6) = -------- =  ------ = ---
                                             90         90       3

а можно так:
                                          666 - 66    600     2
0,666666666 = 0,66(6) = -------- =  ------ = ---
                                             900         900     3

или даже так

                                           666 - 6       660    2
0,666666666 = 0,6(66) = -------- =  ------ = ---
                                             990         990     3

                                                          

Ответить

Номер ответа: 3
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #3 Добавлено: 14.05.04 23:54

вот блин, про 1-ую часть вопроса я как-то забыл ...

проще париной репы :)

                  9375           15

0,9375 = ----------- = -----------

                10000           16

т.е. новое правило: всю дробную часть присваиваем к числителю, а в знаменателе пишем единичку и столько нулей, сколько цифр после нуля.

затем ищем общий делитель для числителя и знаменателя, вот и все!!!!!!!!!!!!!!!!!!!

если непонятно как, пиши, накатаю. !!!!!!!!!!!

Ответить

Номер ответа: 4
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #4 Добавлено: 15.05.04 00:03

поправляюсь. а то какая-то туфталогия получилась прошу вместо:

новое правило: всю дробную часть присваиваем к числителю, а в знаменателе пишем единичку и столько нулей, сколько цифр после нуля.

читать

новое правило: всю дробную часть присваиваем к числителю, а в знаменателе пишем единичку и столько нулей, сколько цифр после запятой.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам